A Randomized Dynamic Program Analysis Technique for Detecting Real Deadlocks
ثبت نشده
چکیده
We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks.
منابع مشابه
A Randomized Dynamic Program Analysis Technique for Detecting Real Deadlocks
We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with h...
متن کاملSymbolic Data Flow Analysis for Detecting Deadlocks in Ada Tasking Programs
It is well accepted that designing and analyzing concurrent software-components are tedious tasks. Assuring the quality of such software requires formal methods, which can statically detect deadlocks. This paper presents a symbolic data ow analysis framework for detecting deadlocks in Ada programs with tasks. The symbolic data ow framework is based on symbolic evaluation { an advanced technique...
متن کاملStatic Detection of Deadlocks in Erlang
We address the problem of detecting two different kinds of possible deadlocks in Erlang programs using static analysis. Our analysis is completely automatic, fast and effective in detecting deadlocks while avoiding most false alarms. We have integrated our analysis in dialyzer, a widely used tool for detecting software defects in Erlang programs, and demonstrate its effectiveness on open-source...
متن کاملA Sound Reduction of Persistent-Sets for Deadlock Detection in MPI Applications
Formal dynamic analysis of MPI programs is crucially important in the context of developing HPC applications. Existing dynamic verification tools for MPI programs suffer from exponential schedule explosion, especially when multiple non-deterministic receive statements are issued by a process. In this paper, we focus on detecting message-orphaning deadlocks within MPI programs. For this analysis...
متن کاملDetecting Potential Deadlocks with Static Analysis and Run-Time Monitoring
Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. A common kind of concurrency error is deadlock, which occurs when a set of threads is blocked each trying to acquire a lock held by another thread in that set. Static and dynamic (run-time) analysis techniques exist to detect deadlocks. Havelund’s GoodLock algorithm detects potential deadlocks ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009